1.出现的冲突
2.解决方法(解决方法都跟第三部分依赖树有很大关系,建议结合起来看啦)
方法一
1 | configurations.all { |
方法二
1 | configurations.all { |
方法三
1 | androidTestImplementation ('com.android.support.test:runner:1.0.2'){ |
3.查看依赖的依赖列表(依赖树)
1 | gradlew -q app:dependencies |
可以看到appcompat-v7和runner中都有依赖support-annotations,可以看到冲突存在的位置是26.1.0–>27.1.1
还有一种更简单的方法可以看到冲突所在,在module下的gradle.buildd下添加如下代码,但缺点就是不知道具体它是哪个上层依赖引起的,可以结合起来在 Terminal 打印的日志中直接搜索,可快速定位到冲突所在,毕竟依赖树打印出来是一大串的
1 | configurations.all { |
4.什么情况下会产生依赖冲突?
如果通过相同的方式引入不同版本的依赖库,默认会选择最新版本,不同的方式引入则会产生依赖冲突。引入的方式有:通过jar/aar、maven(不同的compile也算不同方式,如cmpile和androidTestCompile两者引入的方式不同)
具体可看:android studio 关于gradle依赖管理的一些知识